# Copyright (c) 2021, Frappe and Contributors
# License: GNU General Public License v3. See license.txt

import frappe
from frappe.custom.doctype.custom_field.custom_field import create_custom_fields


def execute():
	frappe.reload_doc('accounts', 'doctype', 'advance_taxes_and_charges')
	frappe.reload_doc('accounts', 'doctype', 'payment_entry')

	if frappe.db.exists('Company', {'country': 'India'}):
		custom_fields = {
			'Payment Entry': [
				dict(fieldname='gst_section', label='GST Details', fieldtype='Section Break', insert_after='deductions',
					print_hide=1, collapsible=1),
				dict(fieldname='company_address', label='Company Address', fieldtype='Link', insert_after='gst_section',
					print_hide=1, options='Address'),
				dict(fieldname='company_gstin', label='Company GSTIN',
					fieldtype='Data', insert_after='company_address',
					fetch_from='company_address.gstin', print_hide=1, read_only=1),
				dict(fieldname='place_of_supply', label='Place of Supply',
					fieldtype='Data', insert_after='company_gstin',
					print_hide=1, read_only=1),
				dict(fieldname='customer_address', label='Customer Address', fieldtype='Link', insert_after='place_of_supply',
					print_hide=1, options='Address', depends_on = 'eval:doc.party_type == "Customer"'),
				dict(fieldname='customer_gstin', label='Customer GSTIN',
					fieldtype='Data', insert_after='customer_address',
					fetch_from='customer_address.gstin', print_hide=1, read_only=1)
			]
		}

		create_custom_fields(custom_fields, update=True)
	else:
		fields = ['gst_section', 'company_address', 'company_gstin', 'place_of_supply', 'customer_address', 'customer_gstin']
		for field in fields:
			frappe.delete_doc_if_exists("Custom Field", f"Payment Entry-{field}")